from Crypto.Util.number import *

q = 12408795636519868275579286477747181009018504169827579387457997229774738126230652970860811085539129972962189443268046963335610845404214331426857155412988073
p = 12190036856294802286447270376342375357864587534233715766210874702670724440751066267168907565322961270655972226761426182258587581206888580394726683112820379
c = 68960610962019321576894097705679955071402844421318149418040507036722717269530195000135979777852568744281930839319120003106023209276898286482202725287026853925179071583797231099755287410760748104635674307266042492611618076506037004587354018148812584502385622631122387857218023049204722123597067641896169655595
e = 65537

n = p*q

assert isPrime(e)
assert (p-1)% e == 0 and (q-1)%e != 0
assert (p-1)%(e**2)!=0
assert (p-1)*(q-1)%GCD(p-1,q-1) == 0
l = (p-1)*(q-1)//GCD(p-1,q-1)
assert l%e == 0 
assert GCD(l//e,e) == 1
d = inverse(e,l//e)
k = 1
while True:
    L = pow(k,l//e,n)
    if L!=1:
        break
    k+=1
cd = pow(c,d,n)
for i in range(e):
    P = (cd * pow(L,i,n)) % n
    txt = long_to_bytes(P)
    if b"moectf" in txt:
        # print("Found!",i)
        print(txt)
        break